A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices, referred to as routers, maintain routing information that describes available routes through the network. Each route defines a path between two locations on the network. In order to maintain an accurate representation of a network, each router typically executes one or more routing protocols in a “control plane” of the device. In general, the “control plane” of a router refers to dedicated hardware or other resources that provide the intelligence to communicate with other peer routers to learn the topology of a network including available routes through the network. By execution of the routing protocols, the control planes of routers maintain control-plane communication sessions through which the protocols exchange routing information that reflects the current topology of the network.
Based on the topology, the control plane of a router makes path selection and programs or otherwise configures a “data plane” or “forwarding plane” of the router, which refers to the dedicated hardware or other resources that is responsible for processing the packets traversing the network. Upon receiving an incoming packet, for example, the forwarding plane of the router examines information within the packet and forwards the packet in accordance with forwarding information installed within the forwarding plane by the control plane of the router.